The present invention relates generally to tables and databases. More particularly, the present invention relates to systems, methods and mediums for efficiently utilizing one or more primary and/or secondary keys implementable on a personal digital assistant in database tables.
In the last few years, the popularity of small, mobile, hand-held remote computing devices, sometimes referred to as palmtop computers or personal digital assistants (PDAs), has grown considerably. Owing to their compact size, these remote devices are easily carried and transported by their users, allowing information to be entered and retrieved from a large number of settings and environments not normally accessible by traditional desktop computing units.
Early generation PDAs offered very limited functionality and were often restricted to serving as personal organizers or datebooks. Indeed, some early models grew out of scientific calculators, and were limited by tiny amounts of memory and equally small text-only LCD screens. Since then, PDAs have become much more powerful with some running versions of operating systems utilized previously only in much larger desktop computers. These later generation computers were extremely popular for use as industrial data-gathering devices.
To facilitate the collection of data, desktop versions of database programs such as spreadsheet applications and forms programs were implemented on the PDA devices. The PDAs could then be carried out into the field for use in collecting data. Surveys and inventories could be taken and stored into memory of the PDA devices. After completion of the data collection, the PDAs could be used to interface with desktop units or main computing servers to upload the information into a central location.
Information collected in this manner was typically stored in the PDA""s memory, for example, in a table or database and indexed using a single key. For instance, a list of people could be stored in a table, alphabetically, according to each person""s last name. In a similar manner, a classroom of children could be stored in a table, numerically, according to each child""s age. These single keyed tables and databases were more than sufficient for simple applications or small groups of items. However, as the size of the lists and the sophistication of the users increased, these databases could no longer provide the functionality required by the ever-increasing complexity of the new applications. For instance, a large list of people could include numerous people having the same last name. With a single keyed table, there was no way to distinguish between two or more people named xe2x80x9cSmithxe2x80x9d. Similarly, children having the same age in a class would also be indistinguishable from one another.
Thus, it can be seen that the single keyed tables and databases are unable to sort and organize large amounts of data, particularly where numerous records possess the same key or index. What is therefore needed is a technique utilizable with PDAs and other palmtop devices for organizing and sorting large volumes of data and information.
One device that provides a multikeyed table includes Pendragon Forms 3.1 offered by Pendragon Software Corporation of Libertyville, Ill. However, increasingly efficient techniques for implementing such tables are needed.
The present invention addresses the problem described above by providing a multikeyed table which may be implemented on a personal digital assistant. In the present invention, the table implemented on the personal digital assistant is capable of storing one or more records with each record having a plurality of fields. A number of fields in the records are designated as primary and secondary keys, which in turn are used for sorting and ordering the records. By doing so, records may be sorted by more than one key or index. As a result, any number of primary and secondary keys may be utilized to distinguish one record from another.
To implement or manipulate the table (e.g., to find a particular record or location within the table), a target position is identified by first receiving target primary and secondary keys from, for example, an application user. Subsequently, an operating system implemented in the personal digital assistant is prompted to select and return one record stored in the table. The record returned by the operating system is then compared with the target""s primary and secondary keys, after which the target is indicated as having keys which are either greater than, less than, or equal to the keys of the received record. This procedure is repeated until a record with primary and secondary keys equal to the target primary and secondary keys is located, at which point the returned record is identified as the target position. Alternatively, the procedure is repeated until all records stored in the table have been identified as having primary and secondary keys greater than or less than the target primary and secondary keys, at which point the target position is identified as falling between a highest record having primary and secondary keys less than the target primary and secondary keys and a lowest record having primary and secondary keys greater than the target primary and secondary keys.